Skip to main content
POST
Handles `POST /v1/wallets/screen`.

Authorizations

Authorization
string
header
required

A tenant API key. Acts for exactly one tenant and cannot conclude a case, because a conclusion records a person.

Body

application/json

Wallet screening request body.

address
string
required

Address to screen.

network
string
required

Network the address is on. Network the address is on, as a code such as ETHEREUM.

A string rather than the enum, so that a network this build does not screen reaches the handler and is refused by name. Typed as the enum it failed deserialization first, which returned a generic malformed-body error - indistinguishable from a typo, and giving an integration no way to tell "you sent rubbish" from "we do not cover that ledger".

force_rescreen
boolean

Ask the provider again instead of reusing a cached answer.

subject_id
string | null

Tenant's customer, when the wallet belongs to one.

Response

A replayed Idempotency-Key, or a cached screening

Wallet screening response body.

address
string
required

Address that was screened.

decision
enum<string>
required

Decision outcome. Sentinel recommends; it never enforces.

Available options:
ALLOW,
WARN,
BLOCK,
HOLD,
REVIEW_REQUIRED,
FLAG,
BLOCK_RECOMMENDED,
SUSPEND,
END_STREAM
decision_id
string
required

Decision record identifier.

evidence
object[]
required

References to the retained raw provider response.

exposures
object[]
required

Normalized risk exposures.

mixer_signals
string[]
required

Mixer signals derived from the exposures.

provider
object
required

Provider and data version behind the screening.

reasons
object[]
required

Explanation reasons.

review_status
enum<string>
required

Review lifecycle state.

Available options:
PENDING,
APPROVED,
OVERTURNED,
NOT_REQUIRED
risk_level
enum<string>
required

Explainable risk level.

Available options:
LOW,
MEDIUM,
HIGH,
CRITICAL
sanctions_evidence
object[]
required

The sanctions publications this answer was reached against.

Present for a clean answer too: a customer being told an address is not designated needs to be able to say which publication that was decided against, and on what date it was retrieved.

sanctions_signals
object[]
required

Sanctions signals.

screening_id
string
required

Screening record identifier.

served_from_cache
boolean
required

Whether the answer was reused from the screening cache.

attribution
null | object

Entity the address is attributed to.

cache
null | object

Where a reused answer came from, and how old it was.

case_id
string | null

Review case opened for the decision, when one was needed.

provider_risk_score
number<float> | null

The provider's own score, an input signal only.